﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Dominio.Logica;
using Dominio.Entidades;
using Dominio.Excepciones;

namespace Interfaz
{
    public partial class Login : Form
    {
        public Login()
        {
            InitializeComponent();
        }


        private void btnAceptar_Click(object sender, EventArgs e)
        {
            this.Aceptar();
        }

        private void Login_Load(object sender, EventArgs e)
        {

        }

        private void txtPassword_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar.Equals(Convert.ToChar(13)))
            {
                this.Aceptar();
            }
        }

        private void Aceptar()
        {
            Usuarios usuario = new Usuarios();
            try
            {
                if (usuario.Validar(txtNombre.Text.ToString(), txtPassword.Text.ToString()))
                {
                    this.Visible = false;
                    usuario = usuario.GetUsuariosByName(txtNombre.Text.ToString());
                    Agencia.UsuarioLogueado = usuario;
                    MenuPrincipal menu = new MenuPrincipal(this);
                    menu.Show();
                    Log.Grabar("Login Correcto: Usuario: " + usuario);
                }
            }
            catch (NoUserFoundException ex)
            {
                Log.Grabar("Error en inicio de sesión, no se encontró el usuario: " + txtNombre.Text.ToString());
                MessageBox.Show(ex.mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (IncorrectPasswordException ex)
            {
                Log.Grabar("Error en inicio de sesión, es incorrecta la contraseña para el usuario: " + txtNombre.Text.ToString());
                MessageBox.Show(ex.mensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
    }
}
